home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / vgaed.zip / VGAEDIT.ZIP / VGATUT.C < prev    next >
C/C++ Source or Header  |  1997-04-25  |  17KB  |  906 lines

  1. # include <dos.h>
  2. # include <string.h>
  3. # include <stdio.h>
  4. # include <bios.h>
  5. # include <stdlib.h>
  6. # include <conio.h>
  7. # include <mem.h>
  8. # include <dir.h>
  9.  
  10. # include "simpwin.h"
  11. # include "swskdef.h"
  12. # include "mouse23.h"
  13. # include "vgacolor.h"
  14. # include "egacolor.h"
  15.  
  16. # define MAIN_WIN 1
  17. # define MAIN_MENU 0
  18. # define QUIT_WIN 5
  19. # define DEMO_MENU 1
  20. # define DEMO_WIN 2
  21. # define TUT_WIN 3
  22. # define TUT_MENU 2
  23. # define FUNC_WIN 4
  24. # define FUNC_MENU 3
  25. # define TXT_WIN 6
  26. # define EXE_WIN 7
  27. # define EXE_MENU 4
  28.  
  29.  
  30. int mou_switch;
  31. int display_switch = 1;
  32.  
  33. int main_menu(void);
  34. int quit(void);
  35. int tutor_menu(void);
  36. int function_menu(void);
  37. int demo_menu(void);
  38. int file_screen(char *file_name);
  39. int text_screen(int file_num);
  40. void dual_font(void);
  41. void large_font(void);
  42. void tall_font(void);
  43. void multi_font(void);
  44. int execute_menu(void);
  45. int color_demo(void);
  46. int gray_demo(void);
  47. int palette_64(void);
  48.  
  49. void main(void)
  50. {
  51.     int i,j,k;
  52.  
  53.     if(init_window(10,5,5,"",1) != 0)
  54.     {
  55.         cprintf("Can't init simple windows!");
  56.         exit(1);
  57.     }
  58.     system("cls");
  59.     mouinit(0);
  60.     if(mouinstalled() != 0)
  61.     {
  62.         simp_window(30,10,50,12,1,0,14,4,0,0,0,0,0);
  63.         if(loadcurs("moucurs.fnt") == 0)
  64.         {
  65.             mouhide();
  66.             mousetposition(1,1);
  67.             mou_switch = 1;
  68.             write_window(3,2,"Mouse Installed !");
  69.         }
  70.         else
  71.         {
  72.             mou_switch = 0;
  73.             write_window(3,2,"No cursor file !");
  74.         }
  75.         delay(1000);
  76.     }
  77.     else
  78.     {
  79.         simp_window(23,10,57,12,1,0,14,4,0,0,0,0,0);
  80.         write_window(3,2,"NO mouse driver installed");
  81.         mou_switch = 0;
  82.         delay(1000);
  83.     }
  84.     if(load_menu_text("vgatut.men") != 0)
  85.     {
  86.         cprintf("Can't find file FONTEDIT.MEN !");
  87.         uninit_window();
  88.         remove("temp.pal");
  89.         exit(1);
  90.     }
  91.     if(load_win_data("vgatut.win") != 0)
  92.     {
  93.         cprintf("Can't find file FONTEDIT.WIN !");
  94.         uninit_window();
  95.         remove("temp.pal");
  96.         exit(1);
  97.     }
  98.     hide_cursor();
  99.     k= 3;
  100.     for(i = 0;i < 13;i++)
  101.     {
  102.         for(j = k - 3;j < k;j++)
  103.         {
  104.             simp_window(40 - j,13 - i,40 + j,13 + i,1,0,14,1,0,0,0,0,0);
  105.         }
  106.         k = k + 3;
  107.     }
  108.     simp_window(1,1,80,25,1,0,14,1,0,0,0,0,0);
  109.     k = 3;
  110.     for(i = 0;i < 13;i++)
  111.     {
  112.         for(j = k - 3;j < k;j++)
  113.         {
  114.             window(40 - j,13 - i,40 + j,13 + i);
  115.             load_screen_form(0,"vgatut.scr");
  116.         }
  117.         k = k + 3;
  118.     }
  119.     window(1,1,80,25);
  120.     load_screen_form(0,"vgatut.scr");
  121.     write_window(35,25," HIT ANY KEY ");
  122.     bioskey(0);
  123.     draw_horizontal_line(196,196,196,2,79,25);
  124.     save_screen(1);
  125.     moucursortype(1);
  126.     moushow();
  127.     /*mou_switch = 0;*/
  128.     while(main_menu())
  129.     {
  130.     }
  131.     uninit_window();
  132.     mouuninit();
  133.     show_cursor();
  134.     system("cls");
  135. }
  136.  
  137. int main_menu(void)
  138. {
  139.     int pick,choice,i = 0,old_i = 9,mousex = 0,mousey = 0;
  140.     char lable[3][13] = {"Demo","Tutor","eXit"};
  141.  
  142.  
  143.     if(display_switch)
  144.     {
  145.         load_screen(1);
  146.         call_window(MAIN_WIN);
  147.         call_menu(MAIN_MENU,3,2);
  148.         save_screen(2);
  149.     }
  150.     else
  151.     {
  152.         load_screen(2);
  153.     }
  154.     display_switch = 1;
  155.     textcolor(4);
  156.     write_window(3,2,"D");
  157.     write_window(22,2,"T");
  158.     write_window(41,2,"X");
  159.     save_screen_buff();
  160.     i = 0;
  161.     moushow();
  162.     for(;;)
  163.     {
  164.         choice = 0;
  165.         if(mouposition(&mousex,&mousey))
  166.         {
  167.             if(mousey == 4)
  168.             {
  169.                 if((mousex > 5) & (mousex < 12))
  170.                 {
  171.                     i = 0;
  172.                 }
  173.                 else if((mousex > 24) & (mousex < 31))
  174.                 {
  175.                     i = 1;
  176.                 }
  177.                 else if((mousex > 42) & (mousex < 49))
  178.                 {
  179.                     i = 2;
  180.                 }
  181.             }
  182.         }
  183.         if(i < 0)
  184.         {
  185.             i = 0;
  186.         }
  187.         if(i > 2)
  188.         {
  189.             i = 2;
  190.         }
  191.         if(old_i != i)
  192.         {
  193.             mouhide();
  194.             old_i = i;
  195.             load_screen_buff();
  196.             switch(i)
  197.             {
  198.                 case 0 : simp_window(6,4,11,4,0,2,0,4,1,8,0,0,0); break;
  199.                 case 1 : simp_window(25,4,31,4,0,2,0,4,1,8,0,0,0); break;
  200.                 case 2 : simp_window(43,4,48,4,0,2,0,4,1,8,0,0,0); break;
  201.             }
  202.             write_window(2,1,"%s",lable[i]);
  203.             moushow();
  204.         }
  205.         if(bioskey(1) | (mou_switch == 0))
  206.         {
  207.             switch(bioskey(0))
  208.             {
  209.                 case ESC : choice = 4; break;
  210.                 case CURSOR_RIGHT : i = i + 1; break;
  211.                 case CURSOR_LEFT : i = i - 1; break;
  212.                 case ENTER : choice = 1; break;
  213.                 case ALT_D : choice = 2; break;
  214.                 case ALT_T : choice = 3; break;
  215.                 case ALT_X : choice = 4; break;
  216.             }
  217.         }
  218.         if(moubuttonpressed(LEFTBUTTON))
  219.         {
  220.             if(mousey == 4)
  221.             {
  222.                 if(((mousex > 5) & (mousex < 12)) |
  223.                     ((mousex > 24) & (mousex < 31)) |
  224.                     ((mousex > 42) & (mousex < 49)))
  225.                 {
  226.                     choice = 1;
  227.                 }
  228.             }
  229.         }
  230.         if(choice != 0)
  231.         {
  232.             break;
  233.         }
  234.     }
  235.     mouhide();
  236.     load_screen_buff();
  237.     if(choice == 1)
  238.     {
  239.         choice = i + 2;
  240.     }
  241.     pick = 1;
  242.     switch(choice)
  243.     {
  244.         case 2 : while(demo_menu()){} break;
  245.         case 3 : while(tutor_menu()){} break;
  246.         case 4 : pick = quit(); break;
  247.     }
  248.     return(pick);
  249. }
  250.  
  251. int quit(void)
  252. {
  253.  
  254.     call_window(QUIT_WIN);
  255.     write_window(3,2,"Quit Y/N ?");
  256.     show_cursor();
  257.     if(get_choice(14,2,"N") == 1)
  258.     {
  259.         uncall_window(QUIT_WIN);
  260.         hide_cursor();
  261.         return(0);
  262.     }
  263.     uncall_window(QUIT_WIN);
  264.     hide_cursor();
  265.     return(1);
  266. }
  267.  
  268.  
  269. int demo_menu(void)
  270. {
  271.     int pick,choice,i = 0,old_i = 9,mousex = 0,mousey = 0;
  272.     char lable[3][17] = {"Color demo","Gray demo","Palete demo"};
  273.  
  274.     if(display_switch)
  275.     {
  276.         load_screen(2);
  277.         call_window(DEMO_WIN);
  278.         call_menu(DEMO_MENU,3,2);
  279.         save_screen(3);
  280.     }
  281.     else
  282.     {
  283.         load_screen(3);
  284.     }
  285.     display_switch = 1;
  286.     textcolor(4);
  287.     write_window(3,2,"C");
  288.     write_window(3,3,"G");
  289.     write_window(3,4,"P");
  290.     save_screen_buff();
  291.     i = 0;
  292.     moushow();
  293.     for(;;)
  294.     {
  295.         choice = 0;
  296.         if(mouposition(&mousex,&mousey))
  297.         {
  298.             if((mousex > 7) & (mousex < 19))
  299.             {
  300.                 i = mousey - 5;
  301.             }
  302.         }
  303.         if(i < 0)
  304.         {
  305.             i = 0;
  306.         }
  307.         if(i > 2)
  308.         {
  309.             i = 2;
  310.         }
  311.         if(old_i != i)
  312.         {
  313.             old_i = i;
  314.             mouhide();
  315.             load_screen_buff();
  316.             simp_window(7,5 + i,25,5 + i,0,2,0,4,1,8,0,0,0);
  317.             write_window(2,1,"%s",lable[i]);
  318.             moushow();
  319.         }
  320.         if(bioskey(1) | (mou_switch == 0))
  321.         {
  322.             switch(bioskey(0))
  323.             {
  324.                 case ESC : choice = 9; break;
  325.                 case CURSOR_DN : i = i + 1; break;
  326.                 case CURSOR_UP : i = i - 1; break;
  327.                 case ENTER : choice = 1; break;
  328.                 case ALT_C : choice = 2; break;
  329.                 case ALT_G : choice = 3; break;
  330.                 case ALT_P : choice = 4; break;
  331.             }
  332.         }
  333.         if(moubuttonpressed(LEFTBUTTON))
  334.         {
  335.             if((mousex > 7) & (mousex < 19) & (mousey > 4) & (mousey < 8))
  336.             {
  337.                 choice = 1;
  338.             }
  339.             else
  340.             {
  341.                 choice = 9;
  342.             }
  343.         }
  344.         if(choice != 0)
  345.         {
  346.             break;
  347.         }
  348.     }
  349.     mouhide();
  350.     load_screen_buff();
  351.     pick = 1;
  352.     if(choice == 1)
  353.     {
  354.         choice = i + 2;
  355.     }
  356.     switch(choice)
  357.     {
  358.         case 2 : color_demo(); break;
  359.         case 3 : gray_demo(); break;
  360.         case 4 : palette_64(); break;
  361.         case 9 : pick = 0; break;
  362.     }
  363.     display_switch = 0;
  364.     return(pick);
  365. }
  366.  
  367.  
  368. int tutor_menu(void)
  369. {
  370.     int pick,choice,i = 0,old_i = 9,mousex = 0,mousey = 0;
  371.     char lable[5][19] = {"General","Support","Functions","Executes","A word"};
  372.  
  373.     if(display_switch)
  374.     {
  375.         if(display_switch == 1)
  376.         {
  377.             load_screen(2);
  378.         }
  379.         call_window(TUT_WIN);
  380.         call_menu(TUT_MENU,3,2);
  381.         save_screen(3);
  382.     }
  383.     else
  384.     {
  385.         load_screen(3);
  386.     }
  387.     display_switch = 1;
  388.     textcolor(4);
  389.     write_window(3,2,"G");
  390.     write_window(3,3,"S");
  391.     write_window(3,4,"F");
  392.     write_window(3,5,"E");
  393.     write_window(3,6,"A");
  394.     save_screen_buff();
  395.     i = 0;
  396.     moushow();
  397.     for(;;)
  398.     {
  399.         choice = 0;
  400.         if(mouposition(&mousex,&mousey))
  401.         {
  402.             if((mousex > 20) & (mousex < 30))
  403.             {
  404.                 i = mousey - 5;
  405.             }
  406.         }
  407.         if(i < 0)
  408.         {
  409.             i = 0;
  410.         }
  411.         if(i > 4)
  412.         {
  413.             i = 4;
  414.         }
  415.         if(old_i != i)
  416.         {
  417.             old_i = i;
  418.             mouhide();
  419.             load_screen_buff();
  420.             simp_window(21,5 + i,31,5 + i,0,2,0,4,1,8,0,0,0);
  421.             write_window(2,1,"%s",lable[i]);
  422.             moushow();
  423.         }
  424.         if(bioskey(1) | (mou_switch == 0))
  425.         {
  426.             switch(bioskey(0))
  427.             {
  428.                 case ESC : choice = 7; break;
  429.                 case CURSOR_DN : i = i + 1; break;
  430.                 case CURSOR_UP : i = i - 1; break;
  431.                 case ENTER : choice = 1; break;
  432.                 case ALT_G : choice = 2; break;
  433.                 case ALT_S : choice = 3; break;
  434.                 case ALT_F : choice = 4; break;
  435.                 case ALT_A : choice = 6; break;
  436.                 case ALT_E : choice = 5; break;
  437.             }
  438.         }
  439.         if(moubuttonpressed(LEFTBUTTON))
  440.         {
  441.             if((mousex > 20) & (mousex < 30) & (mousey > 4) & (mousey < 10))
  442.             {
  443.                 choice = 1;
  444.             }
  445.             else
  446.             {
  447.                 choice = 7;
  448.             }
  449.         }
  450.         if(choice != 0)
  451.         {
  452.             break;
  453.         }
  454.     }
  455.     mouhide();
  456.     load_screen_buff();
  457.     pick = 1;
  458.     if(choice == 1)
  459.     {
  460.         choice = i + 2;
  461.     }
  462.     switch(choice)
  463.     {
  464.         case 2 : file_screen("vgagenrl.txt"); break;
  465.         case 3 : text_screen(5); break;
  466.         case 4 : while(function_menu()){} break;
  467.         case 5 : while(execute_menu()){} break;
  468.         case 6 : text_screen(6);
  469.         case 7 : pick = 0; break;
  470.     }
  471.     display_switch = pick;
  472.     return(pick);
  473. }
  474.  
  475. int function_menu(void)
  476. {
  477.     int pick,choice,i = 0,old_i = 12,mousex = 0,mousey = 0;
  478.     char lable[11][29] = {"save_color_regs\(\)","load_color_regs\(\)","read_color_reg\(\)",
  479.                 "write_color_reg\(\)","save_palette\(\)","load_palette\(\)",
  480.                 "write_palette\(\)","read_palette\(\)",
  481.                 "vag_get_adapter\(\)","gray_color_reg\(\)",
  482.                 "gray_color_regs\(\)"};
  483.  
  484.     if(display_switch)
  485.     {
  486.         load_screen(3);
  487.         call_window(FUNC_WIN);
  488.         call_menu(FUNC_MENU,3,2);
  489.         save_screen(4);
  490.     }
  491.     else
  492.     {
  493.         load_screen(4);
  494.     }
  495.     display_switch = 1;
  496.     save_screen_buff();
  497.     moushow();
  498.     i = 0;
  499.     for(;;)
  500.     {
  501.         choice = 0;
  502.         if(mouposition(&mousex,&mousey))
  503.         {
  504.             if((mousex > 22) & (mousex < 46))
  505.             {
  506.                 i = mousey - 6;
  507.             }
  508.         }
  509.         if(i < 0)
  510.         {
  511.             i = 0;
  512.         }
  513.         if(i > 10)
  514.         {
  515.             i = 10;
  516.         }
  517.         if(old_i != i)
  518.         {
  519.             old_i = i;
  520.             mouhide();
  521.             load_screen_buff();
  522.             simp_window(23,6 + i,47,6 + i,0,2,0,4,1,8,0,0,0);
  523.             write_window(2,1,"%s",lable[i]);
  524.             moushow();
  525.         }
  526.         if(bioskey(1) | (mou_switch == 0))
  527.         {
  528.             switch(bioskey(0))
  529.             {
  530.                 case ESC : choice = 12; break;
  531.                 case CURSOR_DN : i = i + 1; break;
  532.                 case CURSOR_UP : i = i - 1; break;
  533.                 case ENTER: choice = 1; break;
  534.             }
  535.         }
  536.         if(moubuttonpressed(LEFTBUTTON))
  537.         {
  538.             if((mousex > 22) & (mousex < 46) & (mousey > 5) & (mousey < 17))
  539.             {
  540.                 choice = 1;
  541.             }
  542.             else
  543.             {
  544.                 choice = 12;
  545.             }
  546.         }
  547.         if(choice != 0)
  548.         {
  549.             break;
  550.         }
  551.     }
  552.     mouhide();
  553.     load_screen_buff();
  554.     pick = 1;
  555.     if(choice == 1)
  556.     {
  557.         text_screen(i + 7);
  558.     }
  559.     else
  560.     {
  561.         if(choice == 12)
  562.         {
  563.             pick = 0;
  564.         }
  565.     }
  566.     display_switch = 0;
  567.     return(pick);
  568. }
  569.  
  570. int execute_menu(void)
  571. {
  572.     int pick,choice,i = 0,old_i = 9,mousex = 0,mousey = 0;
  573.     char lable[4][29] = {"savedac.exe","loaddac.exe","savepal.exe","loadpal.exe"};
  574.  
  575.     if(display_switch)
  576.     {
  577.         load_screen(3);
  578.         call_window(EXE_WIN);
  579.         call_menu(EXE_MENU,3,2);
  580.         save_screen(4);
  581.     }
  582.     else
  583.     {
  584.         load_screen(4);
  585.     }
  586.     display_switch = 1;
  587.     save_screen_buff();
  588.     i = 0;
  589.     moushow();
  590.     for(;;)
  591.     {
  592.         choice = 0;
  593.         if(mouposition(&mousex,&mousey))
  594.         {
  595.             if((mousex > 22) & (mousex < 46))
  596.             {
  597.                 i = mousey - 6;
  598.             }
  599.         }
  600.         if(i < 0)
  601.         {
  602.             i = 0;
  603.         }
  604.         if(i > 3)
  605.         {
  606.             i = 3;
  607.         }
  608.         if(old_i != i)
  609.         {
  610.             old_i = i;
  611.             mouhide();
  612.             load_screen_buff();
  613.             simp_window(23,6 + i,41,6 + i,0,2,0,4,1,8,0,0,0);
  614.             write_window(2,1,"%s",lable[i]);
  615.             moushow();
  616.         }
  617.         if(bioskey(1) | (mou_switch == 0))
  618.         {
  619.             switch(bioskey(0))
  620.             {
  621.                 case ESC : choice = 9; break;
  622.                 case CURSOR_DN : i = i + 1; break;
  623.                 case CURSOR_UP : i = i - 1; break;
  624.                 case ENTER: choice = 1; break;
  625.             }
  626.         }
  627.         if(moubuttonpressed(LEFTBUTTON))
  628.         {
  629.             if((mousex > 22) & (mousex < 46) & (mousey > 5) & (mousey < 10))
  630.             {
  631.                 choice = 1;
  632.             }
  633.             else
  634.             {
  635.                 choice = 9;
  636.             }
  637.         }
  638.         if(choice != 0)
  639.         {
  640.             break;
  641.         }
  642.     }
  643.     mouhide();
  644.     load_screen_buff();
  645.     pick = 1;
  646.     if(choice == 1)
  647.     {
  648.         text_screen(i + 18);
  649.     }
  650.     else
  651.     {
  652.         if(choice == 9)
  653.         {
  654.             pick = 0;
  655.         }
  656.     }
  657.     display_switch = 0;
  658.     return(pick);
  659. }
  660.  
  661.  
  662. int text_screen(int file_num)
  663. {
  664.     call_window(TXT_WIN);
  665.     load_text(file_num,"vgatut.men");
  666.     write_window((80 - strlen(" HIT ANY KEY ")) / 2,25," HIT ANY KEY ");
  667.     bioskey(0);
  668.     uncall_window(TXT_WIN);
  669.     return(0);
  670. }
  671.  
  672. int file_screen(char *file_name)
  673. {
  674.     call_window(TXT_WIN);
  675.     write_window((80 - strlen(" PgUp/PgDn ESC ")) / 2,25," PgUp/PgDn ESC ");
  676.     read_text(file_name,1);
  677.     uncall_window(TXT_WIN);
  678.     return(0);
  679. }
  680.  
  681. int color_demo(void)
  682. {
  683.     int i,j,m;
  684.     char color[3];
  685.     char color_temp[3];
  686.  
  687.     color[0] = 0x00;
  688.     color[1] = 0x00;
  689.     color[2] = 0x00;
  690.     read_color_reg(color_temp,5);
  691.     write_color_reg(color,5);
  692.     text_screen(22);
  693.     call_window(TXT_WIN);
  694.     write_window((80 - strlen(" HIT ANY KEY TO EXIT ")) / 2,25," HIT ANY KEY TO EXIT ");
  695.     popup_window(8,25,5,55,15,1,2,5,7,1,8,0,0,0);
  696.     clear_window(0xdb);
  697.     window(1,1,80,25);
  698.     textattr(0x70);
  699.     i = 0;
  700.     j = 0;
  701.     m = 0;
  702.     for(i = 0;i < 64;i++)
  703.     {
  704.         color[0] = i;
  705.         write_color_reg(color,5);
  706.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  707.  
  708.     }
  709.     i = 0;
  710.     color[0] = i;
  711.     for(j = 0;j < 64;j++)
  712.     {
  713.         color[1] = j;
  714.         write_color_reg(color,5);
  715.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  716.  
  717.     }
  718.     j = 0;
  719.     color[1] = j;
  720.     for(m = 0;m < 64;m++)
  721.     {
  722.         color[2] = m;
  723.         write_color_reg(color,5);
  724.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  725.  
  726.     }
  727.     m = 0;
  728.     color[2] = m;
  729.     for(i = 0;i < 64;i++)
  730.     {
  731.         color[0] = i;
  732.         write_color_reg(color,5);
  733.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  734.  
  735.     }
  736.     i = 63;
  737.     for(m = 0;m < 64;m++)
  738.     {
  739.         color[2] = m;
  740.         write_color_reg(color,5);
  741.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  742.  
  743.     }
  744.     m = 0;
  745.     color[2] = 0;
  746.     for(j = 0;j < 64;j++)
  747.     {
  748.         color[1] = j;
  749.         write_color_reg(color,5);
  750.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  751.  
  752.     }
  753.     j = 0;
  754.     color[1] = j;
  755.     i = 0;
  756.     color[0] = i;
  757.     for(m = 0;m < 64;m++)
  758.     {
  759.         color[2] = m;
  760.         write_color_reg(color,5);
  761.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  762.  
  763.     }
  764.     m = 63;
  765.     color[2] = m;
  766.     for(i = 0;i < 64;i++)
  767.     {
  768.         color[0] = i;
  769.         write_color_reg(color,5);
  770.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  771.  
  772.     }
  773.     i = 0;
  774.     color[0] = i;
  775.     for(j = 0;j < 64;j++)
  776.     {
  777.         color[1] = j;
  778.         write_color_reg(color,5);
  779.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  780.  
  781.     }
  782.     j = 0;
  783.     color[1] = j;
  784.     m = 0;
  785.     color[2] = m;
  786.     for(j = 0;j < 64;j++)
  787.     {
  788.         color[1] = j;
  789.         write_color_reg(color,5);
  790.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  791.  
  792.     }
  793.     j = 63;
  794.     for(m = 0;m < 64;m++)
  795.     {
  796.         color[2] = m;
  797.         write_color_reg(color,5);
  798.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  799.  
  800.     }
  801.     m = 0;
  802.     color[2] = m;
  803.     for(i = 0;i < 64;i++)
  804.     {
  805.         color[0] = i;
  806.         write_color_reg(color,5);
  807.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  808.  
  809.     }
  810.     i = 0;
  811.     color[0] = i;
  812.     j = 0;
  813.     color[1] = j;
  814.     for(m = 0;m < 64;m++)
  815.     {
  816.         color[2] = m;
  817.         write_color_reg(color,5);
  818.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  819.  
  820.     }
  821.     m = 63;
  822.     for(i = 0;i < 64;i++)
  823.     {
  824.         color[0] = i;
  825.         write_color_reg(color,5);
  826.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  827.  
  828.     }
  829.     i = 63;
  830.     for(j = 0;j < 64;j++)
  831.     {
  832.         color[1] = j;
  833.         write_color_reg(color,5);
  834.         write_window(25,17,"Color Blue = %2d Red = %2d Green = %2d",m,i,j);
  835.  
  836.     }
  837.     write_window((80 - strlen(" HIT ANY KEY TO EXIT ")) / 2,25," HIT ANY KEY TO EXIT ");
  838.     bioskey(0);
  839.     uncall_window(TXT_WIN);
  840.     return(0);
  841. }
  842.  
  843.  
  844. int gray_demo(void)
  845. {
  846.     int i;
  847.     char character[2];
  848.  
  849.     text_screen(23);
  850.     save_color_regs("temp.reg");
  851.     call_window(TXT_WIN);
  852.     popup_window(8,30,10,50,12,1,2,15,1,1,8,0,0,0);
  853.     character[0] = 0xdb;
  854.     character[1] = 0x00;
  855.     for(i = 0;i < 16;i++)
  856.     {
  857.         textcolor(i);
  858.         write_window(3 + i,2,"%s",character);
  859.     }
  860.     window(1,1,80,25);
  861.     textattr(0x70);
  862.     write_window(25,14,"This is the color palette.");
  863.     write_window(25,15,"Hit any key to see grayscale.");
  864.     bioskey(0);
  865.     gray_color_regs();
  866.     write_window((80 - strlen(" HIT ANY KET TO EXIT ")) / 2,25," HIT ANY KEY TO EXIT ");
  867.     bioskey(0);
  868.     load_color_regs("temp.reg");
  869.     remove("temp.reg");
  870.     return(0);
  871. }
  872.  
  873. int palette_64(void)
  874. {
  875.     char buff[20 * 64];
  876.     char *temp_point;
  877.     int i,color_temp;
  878.  
  879.     text_screen(24);
  880.     if(read_file(buff,"define.dat",20 * 64,0L) > 0)
  881.     {
  882.         return(1);
  883.     }
  884.     call_window(TXT_WIN);
  885.     write_window((80 - strlen(" ANY KEY TO TOGGLE COLOR  ESC TO EXIT ")) / 2,25," ANY KEY TO TOGGLE  ESC TO EXIT ");
  886.     color_temp = read_palette(5);
  887.     popup_window(8,20,5,60,15,1,2,5,1,1,8,0,0,0);
  888.     clear_window(0xdb);
  889.     window(1,1,80,25);
  890.     textattr(0x70);
  891.     temp_point = strtok(buff,"\r\n");
  892.     for(i = 0;i < 64;i++)
  893.     {
  894.         write_palette(i,5);
  895.         write_window(30,18,"Color define %s = %d",temp_point,i);
  896.         if(bioskey(0) == 283)
  897.         {
  898.             break;
  899.         }
  900.         write_window(30,18,"                                                ");
  901.         temp_point = strtok(NULL,"\r\n");
  902.     }
  903.     write_palette(color_temp,5);
  904.     uncall_window(TXT_WIN);
  905.     return(0);
  906. }